class: center, middle, inverse, title-slide # Visualización y Análisis en
## Sesión II ### Javier Tamayo Leiva
### Pontificia Universidad Católica de Valparaíso ### Junio 22, 2021 --- <style> .title-slide { background-size: 30%; background-position: center left; } .fa { vertical-align: middle; } .center2 { margin: 0; position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); } body { text-align: justify; } .title-slide h1 { color: #F2EAD0; font-size: 90px; # font-family: "blacksword"; } .title-slide, .title-slide h2, .title-slide h3 { color: #FFF9F2; # font-family: 'Cormorant Garamond', serif; } .remark-slide-number { position: inherit; } .remark-slide-number .progress-bar-container { position: absolute; bottom: 0; height: 4px; display: block; left: 0; right: 0; } .remark-slide-number .progress-bar { height: 100%; background-color: #F2CB07; } .left-code { color: #777; width: 38%; height: 92%; float: left; } .right-plot { width: 60%; float: right; padding-left: 1%; } </style> ## Análisis exploratorio de datos (*Exploratory data analysis*) .pull-left[ ### Estadística descriptiva - {gtsummary} package <br><br> - Visualizando distribuciones <br> - `stat_summary()` <br> - Boxplot <br> - Histograms, Density plot, Heatmaps<br> - {ggpubr} package <br> - q-q plots<br><br> - Análisis de normalidad <br> - Shapiro–Wilk test <br> - Kolmogorov-Smirnov test <br><br> - Análisis de Homocedasticidad <br> - Bartlett’s test <br> - Levene’s test <br> - Fligner-Killeen test <br> ] .pull-right[ ### Inferencia Estadística - Análisis de correlación <br> - Pearson's *r* <br> - Spearman's *ρ* (rho) <br> - Kendall's *τ* (tau) <br><br> - Reducción de dimensión <br> - Análisis de componentes principales (*PCA*) <br><br> - Modelos Liniales <br> - `lm()` <br><br> - Análisis de varianza <br> - F-test <br> - ANOVA test <br> - Kruskal-Wallis test <br><br> - {report} package <br> ] --- ## Dependencias de esta clase ```r # Instalar desde CRAN (The Comprehensive R Archive Network) install.packages("tidyverse") install.packages("ggplot2") install.packages("gtsummary") install.packages("flextable") ``` ```r # Cargar desde la librería library(tidyverse) library(ggplot2) library(gtsummary) library(flextable) ``` --- class: inverse center middle # Análisis exploratorio de datos <br> --- ## Análisis exploratorio de datos El análisis exploratorio de datos o “EDA” (por sus siglas en inglés **E**xploratory **D**ata **A**nalysis), es como se conoce -en estadística- el proceso por el cual un investigador inspecciona un set de datos con la finalidad de generar preguntas, procesar y adquirir conocimiento (procesa datos, genera resultados), y refina o genera nuevas preguntas. <br> ### Proceso 1. Generar preguntas basandose en los datos. <br> 1. Obtener resultados (procesa datos, gráficos, modelos, etc.). <br> 1. Refinar preguntas y/o generar nuevas preguntas. <br><br> Si bien el nombre puede generar la impresión de un proceso estandarizado, en la práctica no hay reglas que limiten los análisis o técnicas utilizadas para generar el proceso iterativo. Sin embargo, existen análisis que se vuelven recurrentes durante el proceso. <br> .footnote[Análisis exploratorio de datos [(EDA) R4DS-ES](https://es.r4ds.hadley.nz/análisis-exploratorio-de-datos-eda.html)] --- class: inverse center middle ## Estadística descriptiva --- ## Los datos (ggplot2::mpg)
Datos de economía de combustible de 1999 a 2008 para 38 modelos populares de automóviles <br> --- ## paquete-**gtsummary** ```r # Instalar desde CRAN (The Comprehensive R Archive Network) install.packages("gtsummary") # Instalar la versión beta desde GitHub install.packages("remotes") remotes::install_github("ddsjoberg/gtsummary") # Para guardar tablas en formato PDF, Word o PowerPoint # Instalar desde CRAN (The Comprehensive R Archive Network) install.packages("flextable") # Instalar la versión beta desde GitHub devtools::install_github("davidgohel/flextable") ``` ```r # Cargar desde la librería library(gtsummary) library(flextable) ``` .footnote[[{gtsummary}](http://www.danieldsjoberg.com/gtsummary/index.html) package] --- ## Resumir data con **gtsummary** ```r mpg2 <- mpg %>% select(class) # Seleccionar solo columnas "class" desde mpg. Se pueden seleccionar # varias columnas en "select()". Ej select(class, year, ...) # También se pueden usar todas las columnas sí se saltan este paso. tbl_summary(mpg2) %>% modify_header(label = "**Samples**") # Resumir data ```
Samples
N = 234
1
class
2seater
5 (2.1%)
compact
47 (20%)
midsize
41 (18%)
minivan
11 (4.7%)
pickup
33 (14%)
subcompact
35 (15%)
suv
62 (26%)
1
n (%)
--- ## Resumir data con **gtsummary** ```r # Crear tabla resumen mpg %>% tbl_cross(row = year, col = class) %>% bold_labels() ```
Characteristic
class
Total
2seater
compact
midsize
minivan
pickup
subcompact
suv
year
1999
2
25
20
6
16
19
29
117
2008
3
22
21
5
17
16
33
117
Total
5
47
41
11
33
35
62
234
```r # Guardar en formato Word mpg %>% tbl_cross(row = year, col = class) %>% bold_labels() %>% as_flex_table() %>% # Transforma el elemento para su compatibilidad con {flextable} flextable::save_as_docx(path = "./mpg.docx") # Nombre y ruta al documento Word a crear ``` .footnote[[{gtsummary}](http://www.danieldsjoberg.com/gtsummary/reference/index.html) package reference] --- class: inverse center middle ## Estadística descriptiva ### Visualizando distribuciones --- --- ## paquete-**ggpubr** ```r # Instalar desde CRAN (The Comprehensive R Archive Network) install.packages("ggpubr") # Instalar la versión beta desde GitHub install.packages("devtools") devtools::install_github("kassambara/ggpubr") ``` ```r # Cargar desde la librería library(ggpubr) ``` .footnote[[{ggpubr}](http://rpkgs.datanovia.com/ggpubr/index.html) package] --- ## Q-Q plot Q-Q plot (*quantile-quantile* plot) dibuja la correlación entre la muestra de interés y una normal. .left-code[ Versión {ggpubr} package ```r ggqqplot(mpg$displ) ``` Versión {ggplot2} package ```r ggplot(mpg, aes(sample=displ))+ stat_qq() ``` ] .right-plot[ <img src="data:image/png;base64,#Sesion_002_files/figure-html/plot-qq-out-1.png" width="576" /> > <small> Versión {ggpubr} package</small> ] --- class: inverse center middle ## Estadística descriptiva ### Análisis de normalidad --- ## Pueba de normalidad Shapiro-Wilk .pull-left[ ### Shapiro-Wilk (SW) test H0 = La variable muestra una distribución normal <br> H1 = La variable no muestra una distribución normal <br> > Para grupos pequeños N < 5000 ### Interpretación p-value > alfa: No rechazar H0 (normal) <br> p-value < alfa: Rechazar H0 (no normal) <br> > alpha hipotético 5% (0,05) ] .pull-right[ ```r shapiro.test(mpg$displ) ``` ``` ## ## Shapiro-Wilk normality test ## ## data: mpg$displ ## W = 0.9408, p-value = 3.936e-08 ``` ```r # 1) Crear serie entre -50 y 50, cada 5 "x" # 2) Crear distribución normal "y" x = seq(-50, 50, by=5) y = dnorm(x, mean(x), sd(x)) shapiro.test(dnorm(x, mean(x), sd(x))) ``` ``` ## ## Shapiro-Wilk normality test ## ## data: dnorm(x, mean(x), sd(x)) ## W = 0.91339, p-value = 0.0641 ``` ] --- ## Pueba de normalidad Kolmogorov-Smirnov .pull-left[ ### Kolmogorov-Smirnov (KS) test H0 = La variable muestra una distribución normal <br> H1 = La variable no muestra una distribución normal <br> > Menos robusto que SW, pero no limita el N ### Interpretación p-value > alfa: No rechazar H0 (normal) <br> p-value < alfa: Rechazar H0 (no normal) <br> > alpha hipotético 5% (0,05) ] .pull-right[ ```r ks.test(diamonds$carat, "pnorm", mean=mean(diamonds$carat),sd=sd(diamonds$carat)) ``` ``` ## ## One-sample Kolmogorov-Smirnov test ## ## data: diamonds$carat ## D = 0.12274, p-value < 2.2e-16 ## alternative hypothesis: two-sided ``` ```r # 1) Crear serie entre -50 y 50, cada 5 "x" # 2) Crear distribución normal "y" x = seq(-50, 50, by=5) y = dnorm(x, mean(x), sd(x)) ks.test(x, "pnorm", mean=mean(x), sd=sd(x)) ``` ``` ## ## One-sample Kolmogorov-Smirnov test ## ## data: x ## D = 0.075542, p-value = 0.999 ## alternative hypothesis: two-sided ``` ] --- ## Distribución de referencia `stat_overlay_normal_density()`de **ggpubr** permite dibujar una distribución normal sobre la distribución de la muestra de interés. ```r ggdensity(mpg, x = "displ", fill = "lightgreen") + stat_overlay_normal_density(color = "darkblue", linetype = "dashed") ``` .center[ <img src="data:image/png;base64,#Sesion_002_files/figure-html/plot-sond-out-1.png" width="360" /> ] .footnote[[{ggpubr}](http://rpkgs.datanovia.com/ggpubr/reference/stat_overlay_normal_density.html) package - function] --- class: inverse center middle ## Estadística descriptiva ### Análisis de Homocedasticidad --- --- class: inverse center middle ## Inferencia Estadística ---